package logica.fachadas;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;

import logica.colecciones.Observadores;
import logica.datatypes.Jugador.DataJugador_R11;
import logica.datatypes.Jugador.DataJugador_R5;
import logica.datatypes.Partida.DataPartida_R1;
import logica.datatypes.Partida.DataPartida_R4;
import logica.excepciones.JugadoresException;
import logica.excepciones.PaisesException;
import logica.excepciones.PartidaException;
import java.io.Serializable;

import persistencia.PersistenciaException;

public interface IFabrica extends Remote{

	public IFachadaModerador getFachadaModerador()throws RemoteException, PersistenciaException;
	public IFachadaJugadores getFachadaJugador()throws RemoteException;
	public IFachadaPublico getFachadaPublico()throws RemoteException;

	
	public void agregarObservador(IObserver cliente) throws RemoteException;
//	public void notificar(int codigoUpdate) throws RemoteException;
	
	//Solo para pruebas
	public int cantObs() throws RemoteException;
	public Observadores getObservadores()throws RemoteException;
	public void setObservadores(Observadores observadores)throws RemoteException;
}
